package cn.iwit.util;

import java.util.ArrayList;
import java.util.List;

import cn.iwit.model.SysFunc;


public class FuncUtil {
    /**
     * @param treeDataList
     * @return
     */
    public final static List<SysFunc> getFatherNode(List<SysFunc> treeDataList) {
        List<SysFunc> newFuncDataList = new ArrayList<>();
        //获取父节点下的子节点
        treeDataList.stream().filter(func -> func.getParentid().longValue() == 0l).forEachOrdered(func -> {
            //获取父节点下的子节点
            func.setChildren(getChildrenNode(func.getId(), treeDataList));
            newFuncDataList.add(func);
        });
        return newFuncDataList;
    }

    /**
     * @param pid
     * @param treeDataList
     * @return
     */
    private final static List<SysFunc> getChildrenNode(long pid, List<SysFunc> treeDataList) {
        List<SysFunc> newSysFuncDataList = new ArrayList<>();
        for (SysFunc func : treeDataList) {
            if (func.getParentid() == null) continue;
            //这是一个子节点
            if (func.getParentid().equals(pid)) {
                //递归获取子节点下的子节点
                func.setChildren(getChildrenNode(func.getId(), treeDataList));
                newSysFuncDataList.add(func);
            }
        }
        return newSysFuncDataList;
    }
}
